package org.erp.spu.service;

import org.erp.spu.entity.SpuReleaseInfo;
import org.erp.spu.entity.SpuTemplateInfo;
import org.erp.spu.entity.vo.*;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface ExcelImportExportService {

    

    /**
     * 分页获取导出数据（大数据量导出使用）
     * @param categoryId 分类ID
     * @param page 页码（从1开始）
     * @param pageSize 每页条数
     * @return 当前页数据
     */
    List<SpuAttrExcelVo> getSpuAllExportListByCategoryIdByPage(Long categoryId, int page, int pageSize);
    /**
     * 获取所有发布项值列表
     * @param categoryId 分类ID
     * @return 所有发布项值列表
     */
    List<SpuAllReleaseExcelVo> getSpuAllReleaseExportListByCategoryId(Long categoryId);
    /**
     * 获取模块发布项信息列表
     * @param categoryId 分类ID
     * @return 发布项信息列表
     */
    List<SpuReleaseInfo> getSpuReleaseListByCategoryId(Long categoryId);
    /**
     * 获取模块发布项信息列表（大数据量导出使用）
     * @param categoryId 分类ID
     * @param page 页码（从1开始）
     * @param pageSize 每页条数
     * @return 当前页数据
     */
    List<SpuModelTemplateExcelVo> getModelTemplateExportByCategoryId(Long categoryId, int page, int pageSize);
    /**
     * 获取模板信息列表
     * @param categoryId 分类ID
     * @return 模板信息列表
     */
    List<SpuTemplateInfoVo> getTemplateInfoList(Long categoryId);

    /**
     * 获取模板发布项信息列表
     * @param templateId 模板ID
     * @return 模板发布项信息列表
     */
    List<SpuTemplateReleaseExcelVo> getReleaseListByTemplateId(Long templateId);

    /**
     * 导入全量相关数据（类目/品牌/系列/型号/属性）
     * @param file Excel文件
     * @return 导入结果说明
     */
    String importAttrExcel(MultipartFile file);

    /**
     * 导入发布项数据（发布项/发布项值）
     * @param file Excel文件
     * @return 导入结果说明
     */
    String importReleaseExcel(MultipartFile file);

    /**
     * 导入发布项数据（模板/发布组/发布项/发布项值）
     * @param file Excel文件
     * @return 导入结果说明
     */
    String  importReleaseExcelByTemplate(MultipartFile file);

    String importModelTemplate(MultipartFile file);
}
